package com.eltsistemas.dao;

import com.eltsistema.hibernate.HibernateUtil;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.eltsistemas.modelo.Modelo;

public class ModeloDao {
	
private Session session;
	
	public ModeloDao()
	{
            session = new HibernateUtil().getSession();
            session.beginTransaction();
	}
	
	public void adiciona(Modelo modelo)
	{
            session.save(modelo);
            session.getTransaction().commit();
            session.close();
	}
	
	public List<Modelo> lista()
	{
            List<Modelo> modeloList = session.createCriteria(Modelo.class).list();
            session.close();
            return modeloList; 
	}
	
	public Modelo exibe(Modelo modelo)
	{
            Modelo encontradoModeloVeiculo = (Modelo) session.load(Modelo.class, modelo.getId());
            return encontradoModeloVeiculo;
	}
	
	public void altera(Modelo modelo)
	{
            session.update(modelo);
            session.getTransaction().commit();
            session.close();
        }
	
	public void remover(Modelo modelo)
	{
            session.delete(modelo);
            session.getTransaction().commit();
            session.close();
        }
	
	public Modelo buscaCodigo(String nome)
	{
            Query query = this.session.createQuery("from Modelo " +
                            	"where nome = :nome");
		
            query.setString("nome", nome);
				
            Modelo encontradaVeiculo = (Modelo) query.uniqueResult();
            session.close();
            return encontradaVeiculo;
		
	}
        
}
